home *** CD-ROM | disk | FTP | other *** search
- // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
- /*$Id: COMDefS.h 1.5 1997/05/12 18:52:06 damien Exp $*/
-
- //
- // COM Example of Deformer
- //
-
- #ifndef __COMDEFS__
- #define __COMDEFS__
-
- #ifndef __I3DEXDFR__
- #include "I3DExDfr.h"
- #endif
-
- // define the Deformer CLSID
- // {8DC8D081-EDB3-11ce-A4F7-0000E202D5A5}
- DEFINE_GUID(CLSID_COMDeformer,0x8dc8d081,0xedb3,0x11ce,0xa4,0xf7,0x0,0x0,0xe2,0x2,0xd5,0xa5);
-
-
- #define ID(a,b,c,d) ((((long)(a))<<24)+(((long)(b))<<16)+(((long)(c))<<8)+(((long)(d))))
- #define kAxisX ID('A','X','E','X')
- #define kAxisY ID('A','X','E','Y')
- #define kAxisZ ID('A','X','E','Z')
-
-
- typedef struct DeformerData {
- long fAxis; // ID of the axis (AXEX AXEY or AXEZ)
- NUM3D fUBegScale; // First scaling of the U axis (if Z is selected, it is the X axis)
- NUM3D fUEndScale; // Last scaling of the U axis (if Z is selected, it is the X axis)
- NUM3D fVBegScale; // First scaling of the V axis (if Z is selected, it is the Y axis)
- NUM3D fVEndScale; // Last scaling of the U axis (if Z is selected, it is the Y axis)
- BOX3D fBoundingBox; // Bounding Box
- } DeformerData;
-
-
- // Deformer Object :
- #undef INTERFACE
- #define INTERFACE Deformer
- class Deformer : public I3DExDeformer2, public I3DExDataExchanger {
- public :
- Deformer();
- ~Deformer();
-
- // IUnknown Interface :
- STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID* ppvObj);
- STDMETHODIMP_(ULONG) AddRef(THIS);
- STDMETHODIMP_(ULONG) Release(THIS);
-
- // I3DExtension method :
- STDMETHODIMP_(I3DExtension*) Clone(THIS);
- STDMETHODIMP ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);
-
- // I3DExDataExchanger methods :
- STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
- STDMETHODIMP_(void*) GetExtensionDataBuffer(THIS);
- STDMETHODIMP ExtensionDataChanged(THIS);
- STDMETHODIMP HandleEvent(THIS_ ULONG sourceID);
- STDMETHODIMP_(short) GetResID(THIS);
-
- // I3DExDeformer methods :
-
- STDMETHODIMP SetBBox(THIS_ BOX3D* bbox);
- STDMETHODIMP DeformPoint(THIS_ VECTOR3D* point, VECTOR3D* result);
- STDMETHODIMP DeformFacetMesh(THIS_ NUM3D lod,const FacetMesh &in,FacetMesh &out);
- STDMETHODIMP DeformBBox(THIS_ const BOX3D &in,BOX3D &out);
- private :
- ULONG fCRef; // reference Counter
- DeformerData fData; // Deformer Data
- };
-
-
- #endif
-